package org.qydjk.common.pojo.product;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 产品实体
 * Created by Edward_yang on 2017/12/21
 */
@Entity
@Table(name = "qy_product", catalog = "qydjk")

public class Product implements java.io.Serializable {

	// Fields

	private Integer id;
	private String name;
	private Integer sellerInnerCategoryId;
	private String sellerInnerCategoryName;
	private String categoryIds;
	private String areaIds;
	private String labelCodes;
	private Integer oneAreaId;
	private String oneAreaName;
	private Integer twoAreaId;
	private String twoAreaName;
	private Integer threeAreaId;
	private String threeAreaName;
	private Integer sellerId; //商家Id
	private Integer needVerificationCode;
	private BigDecimal originPrice; //原价
	private BigDecimal price; //现价
	private String img;
	private String thumbnailImg;
	private String detail;//机构详情，富文本
	private String buyInfo;//体检须知，富文本
	private String appointmentInfo;//预约流程，富文本
	private String appointmentInform; //预约通知
	private Integer appointmentCount;
	private Integer virtualAppointmentCount;//虚拟预约人数
	private Integer virtaulCommentCount;//虚拟评论数量
	private Integer commentCount;
	private Float commentScore;
	private Integer virtualCollectAccount;//虚拟收藏数
	private Integer collectAccount;
	private Integer repertory;
	private Integer virtualSalesCount; //虚拟销售数量
	private Integer salesCount;
	private Integer sellerOrd;
	private Integer ord;
	private Integer splitType;
	private Integer type;
	private Integer storeCardCategoryId;
	private Integer verifyType;
	private Integer status;
	private Date createTime;
	private Date updateTime;

	// Constructors

	/** default constructor */
	public Product() {
	}

	/** full constructor */
	public Product(String name, Integer sellerInnerCategoryId, String sellerInnerCategoryName, String categoryIds, String areaIds,String labelCodes, Integer oneAreaId, String oneAreaName,
			Integer twoAreaId, String twoAreaName, Integer threeAreaId, String threeAreaName, Integer sellerId,
			Integer needVerificationCode, BigDecimal originPrice, BigDecimal price, String img, String thumbnailImg,
			String detail, String buyInfo, String appointmentInfo, String appointmentInform, Integer appointmentCount,
			Integer virtualAppointmentCount, Integer virtaulCommentCount, Integer commentCount, Float commentScore,
			Integer virtualCollectAccount, Integer collectAccount, Integer repertory, Integer virtualSalesCount,
			Integer salesCount, Integer sellerOrd, Integer ord, Integer splitType, Integer type,
			Integer storeCardCategoryId, Integer verifyType, Integer status, Date createTime,
			Date updateTime) {
		this.name = name;
		this.sellerInnerCategoryId = sellerInnerCategoryId;
		this.sellerInnerCategoryName = sellerInnerCategoryName;
		this.categoryIds = categoryIds;
		this.areaIds = areaIds;
		this.labelCodes = labelCodes;
		this.oneAreaId = oneAreaId;
		this.oneAreaName = oneAreaName;
		this.twoAreaId = twoAreaId;
		this.twoAreaName = twoAreaName;
		this.threeAreaId = threeAreaId;
		this.threeAreaName = threeAreaName;
		this.sellerId = sellerId;
		this.needVerificationCode = needVerificationCode;
		this.originPrice = originPrice;
		this.price = price;
		this.img = img;
		this.thumbnailImg = thumbnailImg;
		this.detail = detail;
		this.buyInfo = buyInfo;
		this.appointmentInfo = appointmentInfo;
		this.appointmentInform = appointmentInform;
		this.appointmentCount = appointmentCount;
		this.virtualAppointmentCount = virtualAppointmentCount;
		this.virtaulCommentCount = virtaulCommentCount;
		this.commentCount = commentCount;
		this.commentScore = commentScore;
		this.virtualCollectAccount = virtualCollectAccount;
		this.collectAccount = collectAccount;
		this.repertory = repertory;
		this.virtualSalesCount = virtualSalesCount;
		this.salesCount = salesCount;
		this.sellerOrd = sellerOrd;
		this.ord = ord;
		this.splitType = splitType;
		this.type = type;
		this.storeCardCategoryId = storeCardCategoryId;
		this.verifyType = verifyType;
		this.status = status;
		this.createTime = createTime;
		this.updateTime = updateTime;
	}

	// Property accessors
	@Id
	@GeneratedValue(strategy = IDENTITY)

	@Column(name = "id", unique = true, nullable = false)

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "name", length = 200)

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Column(name = "seller_inner_category_id")

	public Integer getSellerInnerCategoryId() {
		return this.sellerInnerCategoryId;
	}

	public void setSellerInnerCategoryId(Integer sellerInnerCategoryId) {
		this.sellerInnerCategoryId = sellerInnerCategoryId;
	}

	@Column(name = "seller_inner_category_name", length = 100)

	public String getSellerInnerCategoryName() {
		return this.sellerInnerCategoryName;
	}

	public void setSellerInnerCategoryName(String sellerInnerCategoryName) {
		this.sellerInnerCategoryName = sellerInnerCategoryName;
	}

	@Column(name = "category_ids", length = 200)

	public String getCategoryIds() {
		return this.categoryIds;
	}

	public void setCategoryIds(String categoryIds) {
		this.categoryIds = categoryIds;
	}

	@Column(name = "area_ids", length = 200)

	public String getAreaIds() {
		return this.areaIds;
	}

	public void setAreaIds(String areaIds) {
		this.areaIds = areaIds;
	}

	@Column(name = "one_area_id")

	public Integer getOneAreaId() {
		return this.oneAreaId;
	}

	public void setOneAreaId(Integer oneAreaId) {
		this.oneAreaId = oneAreaId;
	}

	@Column(name = "one_area_name", length = 100)

	public String getOneAreaName() {
		return this.oneAreaName;
	}

	public void setOneAreaName(String oneAreaName) {
		this.oneAreaName = oneAreaName;
	}

	@Column(name = "two_area_id")

	public Integer getTwoAreaId() {
		return this.twoAreaId;
	}

	public void setTwoAreaId(Integer twoAreaId) {
		this.twoAreaId = twoAreaId;
	}

	@Column(name = "two_area_name", length = 100)

	public String getTwoAreaName() {
		return this.twoAreaName;
	}

	public void setTwoAreaName(String twoAreaName) {
		this.twoAreaName = twoAreaName;
	}

	@Column(name = "three_area_id")

	public Integer getThreeAreaId() {
		return this.threeAreaId;
	}

	public void setThreeAreaId(Integer threeAreaId) {
		this.threeAreaId = threeAreaId;
	}

	@Column(name = "three_area_name", length = 100)

	public String getThreeAreaName() {
		return this.threeAreaName;
	}

	public void setThreeAreaName(String threeAreaName) {
		this.threeAreaName = threeAreaName;
	}

	@Column(name = "seller_id")

	public Integer getSellerId() {
		return this.sellerId;
	}

	public void setSellerId(Integer sellerId) {
		this.sellerId = sellerId;
	}

	@Column(name = "need_verification_code")

	public Integer getNeedVerificationCode() {
		return this.needVerificationCode;
	}

	public void setNeedVerificationCode(Integer needVerificationCode) {
		this.needVerificationCode = needVerificationCode;
	}

	@Column(name = "origin_price", precision = 12)

	public BigDecimal getOriginPrice() {
		return this.originPrice;
	}

	public void setOriginPrice(BigDecimal originPrice) {
		this.originPrice = originPrice;
	}

	@Column(name = "price", precision = 12)

	public BigDecimal getPrice() {
		return this.price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	@Column(name = "img", length = 200)

	public String getImg() {
		return this.img;
	}

	public void setImg(String img) {
		this.img = img;
	}

	@Column(name = "thumbnail_img", length = 200)

	public String getThumbnailImg() {
		return this.thumbnailImg;
	}

	public void setThumbnailImg(String thumbnailImg) {
		this.thumbnailImg = thumbnailImg;
	}

	@Column(name = "detail", length = 65535)

	public String getDetail() {
		return this.detail;
	}

	public void setDetail(String detail) {
		this.detail = detail;
	}

	@Column(name = "buy_info", length = 65535)

	public String getBuyInfo() {
		return this.buyInfo;
	}

	public void setBuyInfo(String buyInfo) {
		this.buyInfo = buyInfo;
	}

	@Column(name = "appointment_info", length = 65535)

	public String getAppointmentInfo() {
		return this.appointmentInfo;
	}

	public void setAppointmentInfo(String appointmentInfo) {
		this.appointmentInfo = appointmentInfo;
	}

	@Column(name = "appointment_inform", length = 65535)

	public String getAppointmentInform() {
		return this.appointmentInform;
	}

	public void setAppointmentInform(String appointmentInform) {
		this.appointmentInform = appointmentInform;
	}

	@Column(name = "appointment_count")

	public Integer getAppointmentCount() {
		return this.appointmentCount;
	}

	public void setAppointmentCount(Integer appointmentCount) {
		this.appointmentCount = appointmentCount;
	}

	@Column(name = "virtual_appointment_count")

	public Integer getVirtualAppointmentCount() {
		return this.virtualAppointmentCount;
	}

	public void setVirtualAppointmentCount(Integer virtualAppointmentCount) {
		this.virtualAppointmentCount = virtualAppointmentCount;
	}

	@Column(name = "virtaul_comment_count")

	public Integer getVirtaulCommentCount() {
		return this.virtaulCommentCount;
	}

	public void setVirtaulCommentCount(Integer virtaulCommentCount) {
		this.virtaulCommentCount = virtaulCommentCount;
	}

	@Column(name = "comment_count")

	public Integer getCommentCount() {
		return this.commentCount;
	}

	public void setCommentCount(Integer commentCount) {
		this.commentCount = commentCount;
	}

	@Column(name = "comment_score", precision = 2, scale = 1)

	public Float getCommentScore() {
		return this.commentScore;
	}

	public void setCommentScore(Float commentScore) {
		this.commentScore = commentScore;
	}

	@Column(name = "virtual_collect_account")

	public Integer getVirtualCollectAccount() {
		return this.virtualCollectAccount;
	}

	public void setVirtualCollectAccount(Integer virtualCollectAccount) {
		this.virtualCollectAccount = virtualCollectAccount;
	}

	@Column(name = "collect_account")

	public Integer getCollectAccount() {
		return this.collectAccount;
	}

	public void setCollectAccount(Integer collectAccount) {
		this.collectAccount = collectAccount;
	}

	@Column(name = "repertory")

	public Integer getRepertory() {
		return this.repertory;
	}

	public void setRepertory(Integer repertory) {
		this.repertory = repertory;
	}

	@Column(name = "virtual_sales_count")

	public Integer getVirtualSalesCount() {
		return this.virtualSalesCount;
	}

	public void setVirtualSalesCount(Integer virtualSalesCount) {
		this.virtualSalesCount = virtualSalesCount;
	}

	@Column(name = "sales_count")

	public Integer getSalesCount() {
		return this.salesCount;
	}

	public void setSalesCount(Integer salesCount) {
		this.salesCount = salesCount;
	}

	@Column(name = "seller_ord")

	public Integer getSellerOrd() {
		return this.sellerOrd;
	}

	public void setSellerOrd(Integer sellerOrd) {
		this.sellerOrd = sellerOrd;
	}

	@Column(name = "ord")

	public Integer getOrd() {
		return this.ord;
	}

	public void setOrd(Integer ord) {
		this.ord = ord;
	}

	@Column(name = "split_type")

	public Integer getSplitType() {
		return this.splitType;
	}

	public void setSplitType(Integer splitType) {
		this.splitType = splitType;
	}

	@Column(name = "type")

	public Integer getType() {
		return this.type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	@Column(name = "store_card_category_id")

	public Integer getStoreCardCategoryId() {
		return this.storeCardCategoryId;
	}

	public void setStoreCardCategoryId(Integer storeCardCategoryId) {
		this.storeCardCategoryId = storeCardCategoryId;
	}

	@Column(name = "verify_type")

	public Integer getVerifyType() {
		return this.verifyType;
	}

	public void setVerifyType(Integer verifyType) {
		this.verifyType = verifyType;
	}

	@Column(name = "status")

	public Integer getStatus() {
		return this.status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	@Column(name = "create_time", length = 19)

	public Date getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Column(name = "update_time", length = 19)

	public Date getUpdateTime() {
		return this.updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	@Column(name = "label_codes",length = 200)
	public String getLabelCodes() {
		return labelCodes;
	}
	public void setLabelCodes(String labelCodes) {
		this.labelCodes = labelCodes;
	}
}